package E_2024;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Stack;

/*
    某个打印机根据打印队列执行打印任务。打印任务分为九个优先级，分别用数字1-9表示，数字越大优先级越高。打印机每次从队列头部取出第一个任务A，
    然后检查队列余下任务中有没有比A优先级更高的任务，如果有比A优先级高的任务，则将任务A放到队列尾部，否则就执行任务A的打印。
    请编写一个程序，根据输入的打印队列，输出实际的打印顺序。
输入描述
    输入一行，为每个任务的优先级，优先级之间用逗号隔开，优先级取值范围是1~9。
输出描述
    输出一行，为每个任务的打印顺序，打印顺序从0开始，用逗号隔开
示例 1 输入输出示例仅供调试，后台判题数据一般不包含示例
    输入
    9,3,5
    输出
    0,2,1
    说明
    队列头部任务的优先级为9，最先打印，故序号为0
 */
public class E_200_28 {
    public static void main(String[] args) {
        System.out.println(Arrays.toString(ans(new int[]{9, 3, 5})));
    }
    public static int[] ans(int[] arr){
        int[] temp = new int[arr.length];
        int[][] tt = new int[arr.length][2];
        for (int i = 0; i < arr.length; i++) {
            int y = arr[i];
            tt[i][0] = y;
            tt[i][1] = i;
        }
        Arrays.sort(tt, (a,b) -> b[0] - a[0]);
        for (int i = 0; i < tt.length; i++) {
            int[] x = tt[i];
            temp[x[1]] = i;
        }
        return temp;
    }
}
